#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QString>
#include <QPushButton>
#include <QMediaPlayer>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
enum PLAYMODE
{
  ORDER_MODE,
  RANDOM_MODE,
  CIRCLE_MODE
};
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

public slots:
    //处理播放暂停
    void handlePlaySlot();
    //处理播放模式
    void handleModeSlot();

    //处理下一首
    void handleNextSlot();

    //处理下一首
    void handlePrevSlot();

    //处理音乐列表的槽
    void handleListSlot();

    //处理音乐进度
   void handlePositionSlot(int position);


   //处理音乐时长
  void handleDurtionSlot(int duration);


private:
    //设置背景
    void setBackGround(const QString & filename);
    //设置按钮的样式
    void setButtonStyle(QPushButton * button,const QString & filename);
    //初始化按钮
    void initButtons();
    //加载指定的文件夹
    void loadAppointMusic(const QString & filepath);
    //播放音乐
    void starPlayMusic();
    //显示动画
    void showAnimation(QWidget  * window);

    //隐藏动画
    void hideAnimation(QWidget  * window);

private:
    Ui::Widget *ui;

    //音乐播放器
    QMediaPlayer * m_player;

    //当前播放模式
    PLAYMODE m_mode;

    //音乐绝对的文件夹路径
     QString m_musicDir;

     //列表存在的状态
     bool m_isShowFlag;

};
#endif // WIDGET_H
